========================================================================
    DEV_Interface Project Overview
========================================================================

/////////////////////////////////////////////////////////////////////////////
// 1. the DEV_Functions demo application 
/////////////////////////////////////////////////////////////////////////////
The application demonstrate the use of the 'Toolkit Hardware Functions'.

The application gets a pointer to a cifX card DPM. 
If the device is already configured the application start the IO-Demo. 
If device is not configured the application send a "Warmstart" packet and initialize the device. 
!!! The example configuration packets (-> 'Warmstart') are only for PROFIBUS/PROFINET/ETHERCAT Slave !!!
After that the IO-Demo starts.
If an error occurs the application returns with value !=0. 
The return values are defined in cifXHWFunctionsSample.cpp.

IO-Demo:
The IODemo() interchanges the input and output data of the first communication channel.


/////////////////////////////////////////////////////////////////////////////
// 2. folders and files
/////////////////////////////////////////////////////////////////////////////
cifXHWFunctionsSample.cpp
    This is the main application source file. The following functions need to be adapted
     - DEV_GetDPMAddress()     
     - DEV_Cleanup()
    
DEV_InterfaceUser.c
    This file contains examples of general device functions. 
    If the DPM layout is not equal the 'Standard DPM Layout' the function DEV_Initialize() needs
    to be adapted.

DEV_FileUser.c
    This file contains examples of general device file functions. 
    If no stored configuration is used theses functions may not be necessary

DEV_Initialize() needs
    to be adapted.

Protocol_Public/
    This folder contains fielbus specific information, needed for the 'Warmstart' packets
    used in this example.
    
OSAbstraction/
    This folder contains the platform and operating system dependent files.

SerialDPM/
    This folder contains an example implementation of the toolkit custom hardware
    access functions (HWIF), using SPI as a connection the netX device DPM.
    Also called serial DPM (SPM) access.
    
cifXDev/
    This folder contains all needed files to use the Toolkit Hardware Functions
        

/////////////////////////////////////////////////////////////////////////////
// 3. Steps to build and execute the demo application
/////////////////////////////////////////////////////////////////////////////

3.1 Customize the empty OS functions (see OS_NoneOS.cpp)
     - OS_Memcpy()
     - OS_Lock()
     - ...
    Note: For the example application, not all functions need to be implemented.

3.2 Setup the empty DEV functions (see cifXHWFunctionsSample.cpp)
     - DEV_GetDPMAddress()
     - DEV_Cleanup()
   
3.3 After customizing or interchaning the mentionend functions and files (/OSAbstraction/OS_Includes.h OSAbstraction/stdint.h)
    setup build script.

/////////////////////////////////////////////////////////////////////////////